package com.system.demo.service;

import com.system.demo.entity.DTO.ApplicationIdDTO;
import com.system.demo.entity.DTO.ApplicationSearchDTO;
import com.system.demo.entity.DTO.CognizantIdDTO;
import com.system.demo.entity.DTO.SubmitApplicationInfo;
import com.system.demo.entity.database.SubmitApplication;
import com.system.demo.tool.ResponseResult;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;


public interface CompetitionService {

    ResponseResult<?> submitApplication(SubmitApplicationInfo submitApplicationInfo);

    ResponseResult<?> searchAllCompetitionApplications(ApplicationSearchDTO applicationSearchDTO,int current, int size);

    ResponseResult<?> reviewApplication(ApplicationIdDTO applicationId, Integer isPass);

    ResponseResult<?> getReviewResult();

    ResponseResult<?> uploadFile(Integer applicationId, MultipartFile file, String rewardTitle, LocalDateTime awardDate);

    ResponseResult<?> cognizance(Integer applicationId, Integer isPass, Integer finalRankName, Integer finalRankLevel);

    void exportApplicationExcel(ApplicationSearchDTO applicationSearchDTO, HttpServletResponse response);

    ResponseResult<?> noReward(Integer applicationId);

    ResponseResult<?> deleteFile(Integer applicationId);

    ResponseResult<?> getCognizanceInfo(Integer applicationId);

    ResponseResult<?> cognizanceCheck(Integer applicationId, Integer isPass, Integer finalRankName, Integer finalRankLevel);

    ResponseResult<?> getUploadFile(Integer applicationId);

    ResponseResult<?> modifiedApplication(SubmitApplication submitApplication);

    ResponseResult<?> getCognizanceResult(Integer applicationId);

    void downloadCognizantFile(CognizantIdDTO cognizantIdDTO, HttpServletResponse response);

    ResponseResult<?> getCognizanceResultByAdmin(Integer applicationId);
}
